package com.charley.icloud.admin.webapps.sysmenu.pojo.entity;

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.charley.icloud.admin.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.List;

/**
 * 类说明 菜单管理表 对应实体
 *
 * @author charley
 * @date 2024-04-24 10:57
 */
@Data
@TableName("sys_menu")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = true)
public class SysMenuDO extends BaseEntity implements Serializable {

    private static final long serialVersionUID = -5886012896705136270L;

    /**
     * 菜单名称
     */
    @TableField("name")
    private String name;

    /**
     * 父菜单ID，一级菜单为0
     */
    @TableField("parent_id")
    private Long parentId;

    /**
     * 菜单URL,类型：
     * 1.普通页面（如用户管理， /sys/user）
     * 2.嵌套完整外部页面，以http(s)开头的链接
     * 3.嵌套服务器页面，使用iframe:前缀+目标URL(如SQL监控， iframe:/druid/login.html, iframe:前缀会替换成服务器地址)
     */
    @TableField("value")
    private String url;

    /**
     * 授权(多个用逗号分隔，如：sys:user:add,sys:user:edit)
     */
    @TableField("perms")
    private String perms;

    /**
     * 类型   0：目录   1：菜单   2：按钮
     */
    @TableField("type")
    private Byte type;

    /**
     * 菜单ICON图标
     */
    @TableField("icon")
    private String icon;

    /**
     * 菜单CSS样式
     * */
    @TableField("css")
    private String css;

    /**
     * 排序
     */
    @TableField("order_num")
    private Integer orderNum;

    /**
     * 备注信息
     */
    @TableField("remarks")
    private String remarks;

    /**
     * 是否删除  -1：已删除  0：正常
     */
    @TableField("del_flag")
    private Byte delFlag = 0;

    /**
     * 是否隐藏,0 false 1 true
     * */
    @TableField("hidden")
    private Byte hidden = 0;

    // 非数据库字段
    private String parentName;
    // 非数据库字段
    private Integer level;
    // 非数据库字段
    private List<SysMenuDO> children;
}
